package com.gitee.jmliu1983.javautils;

import java.lang.reflect.Array;
import java.util.List;

public class ArrayUtils {
    public static String[][] SplitArrayIntoOddAndEven(String[] numbers) {  
        // 示例数组  
//        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};  
  
        // 用于存储奇数和偶数的数组  
        String[] oddNumbers = new String[numbers.length / 2 + 1]; // 假设最多有一半是奇数，加1以防数组越界  
        String[] evenNumbers = new String[numbers.length / 2 + 1]; // 同上，但实际情况可能更少  
  
        // 用于记录奇数和偶数数组的实际元素数量  
        int oddCount = 0, evenCount = 0;  
  
        // 遍历原数组  
        for (int i =0;i<numbers.length;i++) {  
            if (i % 2 == 0) {  
                // 是偶数，添加到偶数数组  
                evenNumbers[evenCount++] = numbers[i];  
            } else {  
                // 是奇数，添加到奇数数组  
                oddNumbers[oddCount++] = numbers[i];  
            }  
        }  
  
        // 创建一个新的、正确大小的数组来存储奇数或偶数，以避免浪费空间  
        String[] oddNumbersTrimmed = new String[oddCount];  
        String[] evenNumbersTrimmed = new String[evenCount];  
  
        // 复制元素到新数组  
        System.arraycopy(oddNumbers, 0, oddNumbersTrimmed, 0, oddCount);  
        System.arraycopy(evenNumbers, 0, evenNumbersTrimmed, 0, evenCount);  
  
        // 打印结果  
        System.out.println("Odd numbers: ");  
  
        String[][] ret =new String[][] {evenNumbers,oddNumbers};
        return ret;
    }  
    
    public static String[] splitEveryN(String s, int n) {
        int arrayLength = (int) Math.ceil(s.length() / (double) n);
        String[] result = new String[arrayLength];
        for (int i = 0; i < s.length(); i += n) {
            if (i + n > s.length()) {
                result[i / n] = s.substring(i);
            } else {
                result[i / n] = s.substring(i, i + n);
            }
        }

        return result;

    }
    
    public static void reverseArray(Object[] array) {
        int left = 0;
        int right = array.length - 1;
        while (left < right) {
            // 交换元素
            Object temp = array[left];
            array[left] = array[right];
            array[right] = temp;
            // 移动指针
            left++;
            right--;
        }
    }
}
